Page({
  data: {
    nickName: '',
    avatar: ''
  },
  onLoad() {
    const app = getApp()
    console.log(app.userInfo)
    this.setData({ nickName: app.userInfo.nickName, avatar: app.userInfo.avatar })
    // this.setData({...app.userInfo})
  },
  // 更新昵称
  async updateNickName(e) {
    const nickName = e.detail.value
    if (nickName === '')
      return
    // 1. 调用接口发请求更新数据
    const res = await wx.$http.put('/userInfo', { nickName })
    console.log(res)
    // 2. 更新一下app.js中的数据
    const app = getApp()
    app.userInfo.nickName = nickName

    // 3. 通过页面栈找到my/index页面，更新它的nickName信息
    const pages = getCurrentPages()
    // pages[0].data.nickName = nickName 直接修改数据不会让视图更新
    // 调用setData更新
    const myIndexPage = pages[0]
    if (myIndexPage.route.includes('/my/index')) {
      pages[0].setData({ nickName })
    }
  },
  updateUserAvatar(e) {
    const avatarUrl = e.detail.avatarUrl
    console.log(avatarUrl)

    wx.uploadFile({
      url: wx.$http.baseURL + '/upload',
      filePath: avatarUrl,
      name: 'file', // wx.uploadFile 要求必传。
      header: { // 我们自己的接口文档的要求。 上传头像要携带token
        Authorization: 'Bearer ' + getApp().getToken() // 用户登录状态
      },
      // https://apifox.com/apidoc/shared-8d66c345-7a9a-4844-9a5a-1201852f6faa/api-42672275
      formData: { // 是我们自己的接口文档的要求。可以不传，默认就是avatar
        type: 'avatar'
      },
      success: (result) => {
        console.log(JSON.parse(result.data))
        const res = JSON.parse(result.data)
        // console.log(res.data.url)
        const avatar = res.data.url
        // 1. 在页面上显示
        this.setData({ avatar })
        // 2. 更新全局数据
        const app = getApp()
        app.userInfo.avatar = avatar
        // 3. 通过页面栈找到my/index页面，更新它的avatar信息
        const pages = getCurrentPages()
        // pages[0].data.nickName = nickName 直接修改数据不会让视图更新
        // 调用setData更新
        const myIndexPage = pages[0]
        if (myIndexPage.route.includes('/my/index')) {
          pages[0].setData({ avatar })
        }
      }
    })
  }
})